<?php


/**
 * 对象适配器
 */


/**
 * 目标角色（新接口）
 */
interface Target
{
	public function hello();
}

/**
 * 源角色（旧接口）
 */
class Adaptee
{
	public function greet()
	{
		echo 'greet 方法被调用。<br/>';
	}
}

/**
 * 对象适配器
 */
class Adapter implements Target
{
	private $_adaptee;
	
	public function __construct()
	{
		$this->_adaptee = new Adaptee();
	}
	
	public function hello()
	{
		$this->_adaptee->greet();
	}
}

class Client
{
	public static function main()
	{
		$adaptee = new Adaptee();
		echo '旧接口grret()调用：$adaptee->greet()。<br/>';
		$adaptee->greet();
		
		
		$adapter = new Adapter();
		echo '新接口hello()调用：$adapter->hello()。<br/>';
		$adapter->hello();
	}
}

Client::main();